Modelling Requirement Engineering
Recognizing Multiple viewpoint
Collaborative Requirement Gathering
Building the requirements model
Requirements elicitation, or requirements gathering, is a crucial step in software development where stakeholders collaborate to identify problems, propose solutions, negotiate approaches, and specify preliminary requirements for the solution. Let's break down this process using a simple and attractive example:
Imagine you're part of a team tasked with building a new mobile application for a food delivery service. Your team includes stakeholders like business managers, app users, and developers. Each stakeholder has valuable insights and perspectives that can contribute to the success of the project.
The first step is to identify the problem or need that the new mobile app will address. In our example, the problem is that customers find it inconvenient to order food from the current website. They want a more user-friendly and efficient way to order food on their smartphones.
Once the problem is identified, stakeholders elaborate on it by discussing its various aspects and implications. They consider factors such as user preferences, business goals, and technical feasibility. For instance, stakeholders might discuss the types of features they envision for the app, such as browsing menus, placing orders, and tracking deliveries.
During the negotiation phase, stakeholders brainstorm different approaches to solving the problem and prioritize them based on their importance and feasibility. For example, some stakeholders might prioritize speed and ease of use, while others might prioritize security and payment options. Negotiation helps reconcile conflicting priorities and find common ground.
Finally, stakeholders specify a preliminary set of requirements for the solution based on their discussions and negotiations. These requirements outline what the mobile app should do and how it should behave. For instance, requirements might include features like user authentication, order customization, real-time tracking, and secure payment processing.
Requirements elicitation encourages a collaborative, team-oriented approach where stakeholders work together to define the scope and goals of the project. By involving all relevant parties in the process, teams can ensure that the final solution meets the needs and expectations of both users and the business.
During a requirements gathering meeting, stakeholders discuss their experiences with existing food delivery apps, share ideas for improving the ordering process, and debate the merits of different features. For instance, they might debate whether customers should be able to customize their orders or if the app should offer recommendations based on past orders.
As the discussion progresses, stakeholders reach a consensus on the key features and functionalities that the new app should include. They document these requirements in a specifications document, which serves as a roadmap for the development team.
Requirements elicitation is a collaborative process that involves problem-solving, elaboration, negotiation, and specification. By bringing together stakeholders with diverse perspectives and expertise, teams can ensure that the resulting software solution meets the needs of users and aligns with the goals of the business.
Software refers to the set of programs, data, and instructions that enable computers to perform specific tasks or functions. It encompasses applications, operating systems, and utilities designed to fulfill user needs, enhancing productivity, communication, entertainment, and virtually all aspects of modern life through computational processes and data manipulation.
Software Engineering is the disciplined application of principles, methods, and tools to develop, test, deploy, and maintain high-quality software systems. It involves systematic approaches to problem-solving, project management, and teamwork, aiming to meet user needs efficiently while adhering to standards and best practices throughout the software development lifecycle.